#include <iostream>
#include <vector>
#include <deque>

using namespace std;

namespace YX
{
    template<typename T,typename Container=vector<T>>
        class stack
        {
            private:
                Container _con;

            public:

                bool empty()
                {
                    return _con.empty();
                }
    
                size_t size()
                {
                    return _con.size();
                }

                T& top()
                {
                    return _con.back();
                }

                void push(const T& x)
                {
                    _con.push_back(x);
                }

                void pop()
                {
                    _con.pop_back();
                }

                void swap(stack<T>& st)
                {
                    _con.swap(st._con);
                }


        };


};
